package org.japo.java.basics.entities;

import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.File;

/**
 *
 * @author Stefa Perez
 */
class GEV extends WindowAdapter {

    private final String F_BLOQUEO = "intancia.lock";
    private IGU igu;

    GEV(IGU igu) {
        this.igu = igu;

    }

    @Override
    public void windowOpened(WindowEvent we) {
        try {
            activarInstancia();
        } catch (Exception e) {
            cerrarPrograma();
        }
    }

    @Override
    public void windowClosing(WindowEvent we) {
        try {
            desactivarInstancia();
        } catch (Exception e) {
            cerrarPrograma();
        }
    }

    private void cerrarPrograma() {
        igu.setVisible(false);
        igu.dispose();
        System.exit(0);
    }
    
    private void activarInstancia() throws Exception{
    File f = new File(F_BLOQUEO);
        boolean existeOK = f.exists();
        if (!existeOK) {
            f.createNewFile();
        } else {
            throw new Exception("Ya hay otra información");
        }
    }

    private void desactivarInstancia() throws Exception {
        File f = new File(F_BLOQUEO);
        boolean existeOK = f.exists();
        if (existeOK) {
            f.delete();
        } else {
            throw new Exception("Problemas con las anulación");
        }
    }
}
